#ifndef STORAGE_H
#define STORAGE_H

#include <time.h>
#include "cache.h"

// RDB文件魔数和版本
#define RDB_MAGIC "REDIS"
#define RDB_VERSION "0006"

// RDB文件结构
typedef struct {
    char* filename;        // RDB文件名
    int save_interval;     // 保存间隔（秒）
    int auto_save;         // 是否自动保存
    time_t last_save_time; // 最后保存时间
} RDBConfig;

// 保存缓存到RDB文件
int rdb_save(Cache* cache, const char* filename);

// 从RDB文件加载缓存
int rdb_load(Cache* cache, const char* filename);

// 初始化RDB配置
RDBConfig* rdb_init_config(const char* filename, int save_interval);

// 销毁RDB配置
void rdb_destroy_config(RDBConfig* config);

// 检查是否需要保存
int rdb_should_save(RDBConfig* config, Cache* cache);

// 打印RDB统计信息
void rdb_print_info(RDBConfig* config);

#endif 